package com.jianyun.jyzs.http;

import com.jianyun.jyzs.bean.AddressList;
import com.jianyun.jyzs.bean.AttAddResult;
import com.jianyun.jyzs.bean.CrmPhoneNumBean;
import com.jianyun.jyzs.bean.EnginnerMsgResult;
import com.jianyun.jyzs.bean.LoginBean;
import com.jianyun.jyzs.bean.MeUserInfo;
import com.jianyun.jyzs.bean.NewCreateCrmBean;
import com.jianyun.jyzs.bean.NewSignRecodeBean;
import com.jianyun.jyzs.bean.NewSignReslut;
import com.jianyun.jyzs.bean.OaCustomBean;
import com.jianyun.jyzs.bean.SafeUpdateResponse;
import com.jianyun.jyzs.bean.AnnouncementComment;
import com.jianyun.jyzs.bean.AnnouncementList;
import com.jianyun.jyzs.bean.BaseResult;
import com.jianyun.jyzs.bean.CrmCountResponse;
import com.jianyun.jyzs.bean.CrmDetial;
import com.jianyun.jyzs.bean.CrmFunnelList;
import com.jianyun.jyzs.bean.CrmListResponse;
import com.jianyun.jyzs.bean.CrmSearchBean;
import com.jianyun.jyzs.bean.DiscussResult;
import com.jianyun.jyzs.bean.DiscussionId;
import com.jianyun.jyzs.bean.EPrijectImages;
import com.jianyun.jyzs.bean.EnNatureResponse;
import com.jianyun.jyzs.bean.EngProjectLocResult;
import com.jianyun.jyzs.bean.EngineerAgreeResult;
import com.jianyun.jyzs.bean.EngineerDiscussResult;
import com.jianyun.jyzs.bean.EngineerProjectResult;
import com.jianyun.jyzs.bean.EngineerTypeResult;
import com.jianyun.jyzs.bean.EngineeringResult;
import com.jianyun.jyzs.bean.IndustryResponse;
import com.jianyun.jyzs.bean.IssueTypeResponse;
import com.jianyun.jyzs.bean.NoticeAgreesCountResult;
import com.jianyun.jyzs.bean.OrderResponse_;
import com.jianyun.jyzs.bean.PushResult;
import com.jianyun.jyzs.bean.QualityAddAttacmentResult;
import com.jianyun.jyzs.bean.QualityRespon;
import com.jianyun.jyzs.bean.QualityStateRes;
import com.jianyun.jyzs.bean.QualitySyncList;
import com.jianyun.jyzs.bean.QualityUpdataResponse;
import com.jianyun.jyzs.bean.SafeInsResponse;
import com.jianyun.jyzs.bean.SafeIssueType;
import com.jianyun.jyzs.bean.SecurityResponse;
import com.jianyun.jyzs.bean.SecuritySyncList;
import com.jianyun.jyzs.bean.SignNewReslut;
import com.jianyun.jyzs.bean.SignRange;
import com.jianyun.jyzs.bean.SignResult;
import com.jianyun.jyzs.bean.SignStateBean;
import com.jianyun.jyzs.bean.SignVersionBean;
import com.jianyun.jyzs.bean.SinglAnnoucement;
import com.jianyun.jyzs.bean.StatusResult;
import com.jianyun.jyzs.bean.TopBrodCastBean;
import com.jianyun.jyzs.bean.UpdataPwdBean;
import com.jianyun.jyzs.bean.UrlConfig;
import com.jianyun.jyzs.bean.WODelResponse;
import com.jianyun.jyzs.bean.WillSignBean;
import com.jianyun.jyzs.bean.WoProject;
import com.jianyun.jyzs.bean.WoWorkType;
import com.jianyun.jyzs.bean.WorkOderSynchroList;
import com.jianyun.jyzs.bean.WorkOrderDetialResponse;
import com.jianyun.jyzs.bean.WorkOrderUpdateResponse;
import com.jianyun.jyzs.bean.WorkStateResponse;


import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.PartMap;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import retrofit2.http.Url;
import rx.Observable;

/**
 * Created by mlli on 2017/10/19.
 */

public interface Api {
    String centerUrl = "http://cloud.yuntech.cc/yuncenter/";

    /**
     * 获得配置
     */
    @POST("dataservice/jianyunzhushou.aspx")
    Observable<UrlConfig> getConfig(@Query("method") String method,
                                    @Query("enterpriseCode") String enterpriseCode,
                                    @Query("appCode") String appCode,
                                    @Query("appType") String appType,
                                    @Query("appVersion") String appVersion);

    @GET
    Observable<File> downFile(@Url String url);

    /**
     * 登录 建云中心
     *
     * @param method
     * @param enterpriseCode
     * @param label
     * @param password
     * @param phoneType      手机型号
     * @param osVersion      版本
     * @return
     */
    @GET("jianyunzhushou.aspx")
    Observable<LoginBean> jyLogin(@Query("method") String method,
                                  @Query("enterpriseCode") String enterpriseCode,
                                  @Query("label") String label,
                                  @Query("password") String password,
                                  @Query("appCode") String appCode,
                                  @Query("appType") String appType,
                                  @Query("appVersion") String appVersion);

    /**
     * 上传设备信息
     *
     * @param method
     * @param enterpriseCode
     * @param DEVICEID
     * @param DEVICECOMP
     * @param DEVICEXH
     * @param OSTYPE
     * @param OSINFO
     * @param SOURCE_SYSTEM
     * @param EMPLOYEEID
     * @param NETTYPE
     * @param appCode
     * @param appType
     * @param appVersion
     * @return
     */
    @GET("jianyunzhushou.aspx")
    Observable<Object> upPhoneInfo(@Query("method") String method,
                                   @Query("enterpriseCode") String enterpriseCode,
                                   @Query("DEVICEID") String DEVICEID,
                                   @Query("DEVICECOMP") String DEVICECOMP,
                                   @Query("DEVICEXH") String DEVICEXH,
                                   @Query("OSTYPE") String OSTYPE,
                                   @Query("OSINFO") String OSINFO,
                                   @Query("SOURCE_SYSTEM") String SOURCE_SYSTEM,
                                   @Query("EMPLOYEEID") String EMPLOYEEID,
                                   @Query("NETTYPE") String NETTYPE,
                                   @Query("appCode") String appCode,
                                   @Query("appType") String appType,
                                   @Query("appVersion") String appVersion);


    /**
     * 获取用户信息
     *
     * @param method
     * @param enterpriseCode
     * @param userId
     * @return
     */
    @POST("jianyunzhushou.aspx")
    Observable<MeUserInfo> getUserinfo(@Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                       @Query("Id") String userId, @Query("appCode") String appCode,
                                       @Query("appType") String appType, @Query("appVersion") String appVersion);

    /**
     * 获取通讯录列表
     *
     * @param method
     * @param enterpriseCode
     * @param userId
     * @param pageIndex
     * @param appCode
     * @param appType
     * @param appVersion
     * @return
     */
    @POST("jianyunzhushou.aspx")
    Observable<Object> loadContact(@Query("method") String method,
                                   @Query("enterpriseCode") String enterpriseCode,
                                   @Query("Id") String userId,
                                   @Query("pageIndex") String pageIndex,
                                   @Query("appCode") String appCode,
                                   @Query("appType") String appType,
                                   @Query("appVersion") String appVersion);

    /**
     * 修改密码
     *
     * @param method
     * @param enterpriseCode
     * @param userId
     * @param oldPwd
     * @param newPwd
     * @return
     */
    @POST("jianyunzhushou.aspx")
    Observable<UpdataPwdBean> upDataPwd(@Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                        @Query("employeeId") String userId, @Query("oldPass") String oldPwd, @Query("newPass") String newPwd,
                                        @Query("appCode") String appCode,
                                        @Query("appType") String appType,
                                        @Query("appVersion") String appVersion);

    /**
     * 修改邮箱
     *
     * @param method
     * @param enterpriseCode
     * @param userId
     * @param email
     * @return
     */
    @POST("jianyunzhushou.aspx")
    Observable<UpdataPwdBean> upEmail(@Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                      @Query("employeeId") String userId, @Query("email") String email, @Query("appCode") String appCode,
                                      @Query("appType") String appType,
                                      @Query("appVersion") String appVersion);

    /**
     * 修改手机号
     *
     * @param method
     * @param enterpriseCode
     * @param userId
     * @param mobilePhone
     * @return
     */
    @POST("jianyunzhushou.aspx")
    Observable<UpdataPwdBean> upPhone(@Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                      @Query("employeeId") String userId, @Query("mobilePhone") String mobilePhone,
                                      @Query("appCode") String appCode,
                                      @Query("appType") String appType,
                                      @Query("appVersion") String appVersion);

    /**
     * 获取应用界面扩展
     *
     * @param url
     * @return
     */
    @GET
    Observable<Object> getCustomMain(@Url String url);

    /**
     * 获取通讯录
     *
     * @param method
     * @param enterpriseCode
     * @param userid
     * @param pageIndex
     * @return
     */
    @POST("jianyunbao.aspx")
    Observable<AddressList> getAddressList(@Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                           @Query("Id") String userid, @Query("pageIndex") String pageIndex);

    /**
     * 获取考勤版本
     *
     * @param method
     * @param enterpriseCode
     * @return
     */
    @POST("Kqgl/KqglCommonService.aspx")
    Observable<SignVersionBean> getSignViersion(@Query("method") String method, @Query("enterpriseCode") String enterpriseCode);


    /**
     * 判断地址是否在范围内
     *
     * @param method
     * @param enterpriseCode
     * @param lat
     * @param lng
     * @return
     */
    @POST
    Observable<SignRange> isSignFw(@Url String url, @Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                   @Query("lat") String lat, @Query("lng") String lng);

    /**
     * 获取用户将要打卡的详细信息
     *
     * @param method
     * @param enterpriseCode
     * @param userId
     * @return
     */
    @POST
    Observable<Object> getWillSignDetail(@Url String url, @Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                         @Query("userId") String userId);

    /**
     * 获取用户将要打卡的状态
     *
     * @param method
     * @param enterpriseCode
     * @param userId
     * @return
     */
    @POST
    Observable<SignStateBean> getUserSignState(@Url String url, @Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                               @Query("userId") String userId, @Query("signType") String signType);


    /**
     * 新版打卡
     */
    @FormUrlEncoded
    @POST
    Observable<SignNewReslut> newSign(@Url String url, @FieldMap HashMap<String, String> map);
    /**************************天津六建**********************************/

    /**
     * 新版打卡
     */
    @FormUrlEncoded
    @POST
    Observable<Object> newSign2(@Url String url, @FieldMap HashMap<String, String> map);

    /**
     * 更新打卡
     * ("Kqgl/KqglService_tjlj.aspx")
     */
    @FormUrlEncoded
    @POST
    Observable<Object> updateSign2(@Url String url, @FieldMap HashMap<String, String> map);

    /**
     * 获取某天的打卡记录2
     * ("Kqgl/KqglService_tjlj.aspx")
     *
     * @param method
     * @param enterpriseCode
     * @param userId
     * @param signDate
     * @return
     */
    @POST
    Observable<Object> getSignDataList2(@Url String url, @Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                        @Query("userId") String userId, @Query("signDate") String signDate);

    @FormUrlEncoded
    @POST
    Observable<Object> getSignDataList3(@Url String url, @FieldMap HashMap<String, String> map);

    /***********************安徽新建**********************************/


    /**
     * 上传极光RegistrationID
     */
    @POST("DataService/JianyunZhuShou.aspx")
    Observable<Object> upRegId(@Query("method") String method,
                               @Query("personId") String userId,
                               @Query("Registration_id") String RegistrationID,
                               @Query("appCode") String appCode,
                               @Query("appType") String appType,
                               @Query("appVersion") String appVersion);

    /**
     * 取消极光绑定设备ID
     *
     * @param method
     * @param userId
     * @param RegistrationID
     * @param appCode
     * @param appType
     * @param appVersion
     * @return
     */
    @POST("DataService/JianyunZhuShou.aspx")
    Observable<Object> cancelId(@Query("method") String method,
                                @Query("personId") String userId,
                                @Query("Registration_id") String RegistrationID,
                                @Query("appCode") String appCode,
                                @Query("appType") String appType,
                                @Query("appVersion") String appVersion);


    /**-----------------------------------------------------------------------------------------------**/
    /**---------------------------------------工程动态模块----------------------------------------------**/
    /**-----------------------------------------------------------------------------------------------**/


    /**
     * 得到工程动态列表
     */
    @FormUrlEncoded
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<EngineeringResult> getNewEngineerDynamic(@FieldMap HashMap<String, String> params);


    /**
     * 新的评论工程动态
     */
    @FormUrlEncoded
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<EngineerDiscussResult> newdiscussEngineerDynamic(@FieldMap HashMap<String, String> params);


    /**
     * 新的工程动态点赞
     */
    @FormUrlEncoded
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<EngineerAgreeResult> newagreeEngineer(@FieldMap HashMap<String, String> params);


    /**
     * 新的获取工程项目
     *
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<EngineerProjectResult> getNewEngineerProject(@FieldMap HashMap<String, String> map);


    /**
     * 新的获取工程项目部位
     *
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<EngProjectLocResult> getNewEngineerLoc(@FieldMap HashMap<String, String> map);


    /**
     * 工程动态获得工程项目类型
     *
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<EngineerTypeResult> getNewEngineerType(@FieldMap HashMap<String, String> map);


    /**
     * 创建工程动态
     *
     * @param map
     * @param fileExtName
     * @param fileType
     * @param duration
     * @param file        ,@Multipart
     * @return
     * @Part MultipartBody.Part...  file
     */
    @Multipart
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<Object> createNewEngineer(@PartMap HashMap<String, RequestBody> map,
                                         @Part("fileExtName") RequestBody fileExtName,
                                         @Part("fileType") RequestBody fileType,
                                         @Part("duration") RequestBody duration,
                                         @Part MultipartBody.Part... file
    );


    /**
     * 获取工程动态消息 列表
     *
     * @param method
     * @return
     */
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<EnginnerMsgResult> getEnginerMeessageList(@Query("method") String method,
                                                         @Query("enterpriseCode") String enterpriseCode,
                                                         @Query("ProjectProgress") String ProjectProgress,
                                                         @Query("autoid") String autoid,
                                                         @Query("Type") String Type,
                                                         @Query("appCode") String appCode,
                                                         @Query("appType") String appType,
                                                         @Query("appVersion") String appVersion);

    /**
     * 得到单个工程动态
     *
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<EngineeringResult> getNewOneEngineer(@FieldMap HashMap<String, String> map);


    /**
     * 删除工程动态
     *
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<BaseResult> delNewEngineer(@FieldMap HashMap<String, String> map);

    /**
     * 新的得到个人项目动态
     *
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<EngineeringResult> getNewPersonDynamic(@FieldMap HashMap<String, String> map);


    //工程动态图片
    @FormUrlEncoded
    @POST("DataService/ProjectDynamicsService.aspx")
    Observable<Object> getNewDynamicImages(@FieldMap HashMap<String, String> map);

    /**-----------------------------------------------------------------------------------------------**/
    /**-----------------------------------------------------------------------------------------------**/

    /**
     * 签到
     */
    @FormUrlEncoded
    @POST("DataService/jianyunbao.aspx")
    Observable<SignResult> userSignDao(@FieldMap HashMap<String, String> map);

    /**
     * 综合业务
     */
    @POST("DataService/jianyunbao.aspx")
    Observable<Object> getIntegrated(@Query("method") String method, @Query("employeeid") String employeeid);

    /**
     * 新的得到通知公告列表
     *
     * @param method
     * @param PageIndex
     * @param PageSize
     * @return
     */
    @POST("DataService/OAService.aspx")
    Observable<AnnouncementList> getAnnouncement(@Query("method") String method,
                                                 @Query("enterpriseCode") String enterpriseCode,
                                                 @Query("employeeId") String employeeId,
                                                 @Query("pageIndex") int PageIndex,
                                                 @Query("PageSize") int PageSize,
                                                 @Query("appCode") String appCode,
                                                 @Query("appType") String appType,
                                                 @Query("appVersion") String appVersion);

    /**
     * 得到通知公告列表
     */
    @FormUrlEncoded
    @POST("phone/NoticeList!list.action")
    Observable<AnnouncementList> getAnnouncementList(@FieldMap HashMap<String, String> map);

    /**
     * 得到通知公告评论
     */
    @FormUrlEncoded
    @POST("phone/NoticeDiscuss!getSome.action")
    Observable<AnnouncementComment> getAnnCommentList(@FieldMap HashMap<String, String> map);

    /**
     * 通知公告点赞
     */
    @FormUrlEncoded
    @POST("phone/NoticeAgree!agree.action")
    Observable<NoticeAgreesCountResult> likesAnnouncement(@FieldMap HashMap<String, String> map);

    /**
     * 通知公告评论
     */
    @FormUrlEncoded
    @POST("phone/NoticeDiscussText!upMessage.action")
    Observable<DiscussResult> commentAnnoucement(@FieldMap HashMap<String, String> map);


    /**
     * Crm签到sign
     */
    @FormUrlEncoded
    @POST("CRMService.aspx")
    Observable<SignResult> crmSign(@FieldMap HashMap<String, String> map);

    /**
     * 获取CRM外勤签到信息
     *
     * @param method
     * @param userId
     * @param crmId
     * @param enterpriseCode
     * @param appCode
     * @param appType
     * @param appVersion
     * @return
     */
    @POST("CRMService.aspx")
    Observable<Object> getCrmSignList(@Query("method") String method, @Query("userId") String userId,
                                      @Query("crmId") String crmId,
                                      @Query("enterpriseCode") String enterpriseCode,
                                      @Query("appCode") String appCode,
                                      @Query("appType") String appType,
                                      @Query("appVersion") String appVersion);

    /**
     * 搜索crm
     *
     * @return
     */
    @FormUrlEncoded
    @POST("CRMService.aspx")
    Observable<CrmSearchBean> searchCrmList(@FieldMap HashMap<String, String> map);


    /**
     * 新的下载漏斗阶段
     */
    @POST("DataService/CRMService.aspx")
    Observable<CrmFunnelList> getNewSomeFunnel(@Query("method") String method,
                                               @Query("enterpriseCode") String enterpriseCode,
                                               @Query("appCode") String appCode,
                                               @Query("appType") String appType,
                                               @Query("appVersion") String appVersion
    );

    /**
     * CRM-项目反馈
     */
    @FormUrlEncoded
    @POST("CRMService.aspx")
    Observable<Object> projectFeedBack(@FieldMap Map<String, String> map);


    /**
     * 新的获取企业性质
     */
    @FormUrlEncoded
    @POST("DataService/CRMService.aspx")
    Observable<EnNatureResponse> getNewEntNature(@FieldMap Map<String, String> map);


    /**
     * 新的获取所属行业
     */
    @FormUrlEncoded
    @POST("DataService/CRMService.aspx")
    Observable<IndustryResponse> getNewIndustry(@FieldMap Map<String, String> map);


    /**
     * 新的创建CRM
     */
    @FormUrlEncoded
    @POST("DataService/CRMService.aspx")
    Observable<NewCreateCrmBean> newCreateCrm(@FieldMap Map<String, String> map);

    /**
     * 创建CRM多媒体即时消息
     *
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("DataService/CRMService.aspx")
    Observable<Object> upCrmMedia(@FieldMap Map<String, String> map);


    /**
     * CRM下次拜访
     *
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("DataService/CRMService.aspx")
    Observable<Object> upCrmVisit(@FieldMap Map<String, String> map);

    /**
     * CRM中的电话沟通和上门拜访数量
     *
     * @param method
     * @param userId
     * @return
     */
    @POST("DataService/CrmGetmessage.aspx")
    Observable<CrmPhoneNumBean> getNewPhoneNum(@Query("method") String method, @Query("userId") String userId);

    /**
     * 查询CRM预约次数
     *
     * @param method
     * @param enterpriseCode
     * @param userid
     * @param type
     * @param year_month
     * @param appCode
     * @param appType
     * @param appVersion
     * @return
     */
    @POST("DataService/CRMService.aspx")
    Observable<Object> getCrmMonthCount(@Query("method") String method,
                                        @Query("enterpriseCode") String enterpriseCode,
                                        @Query("userid") String userid,
                                        @Query("type") String type,
                                        @Query("year_month") String year_month,
                                        @Query("appCode") String appCode,
                                        @Query("appType") String appType,
                                        @Query("appVersion") String appVersion);


    /**
     * 查询每天的CRM预约详情
     *
     * @param method
     * @param enterpriseCode
     * @param userid
     * @param type
     * @param workdate
     * @param appCode
     * @param appType
     * @param appVersion
     * @return
     */
    @POST("DataService/CRMService.aspx")
    Observable<Object> quearyCrmDateList(@Query("method") String method,
                                         @Query("enterpriseCode") String enterpriseCode,
                                         @Query("userid") String userid,
                                         @Query("type") String type,
                                         @Query("workdate") String workdate,
                                         @Query("appCode") String appCode,
                                         @Query("appType") String appType,
                                         @Query("appVersion") String appVersion);


    /**
     * 文件上传
     */
    @Multipart
    @POST("WorkAsp/Extend/FileManager/Muliupload/jianyunbaoUpload.aspx")
    Observable<Object> uploadFile(@PartMap Map<String, RequestBody> params, @Part MultipartBody.Part file);


    /**
     * 修改OA头像
     */
    @Headers("Connection: close")
    @Multipart
    @POST("WorkAsp/Extend/FileManager/Muliupload/jianyunbaoUpload.aspx")
    Observable<Object> upOaProfile(@PartMap Map<String, RequestBody> params, @Part MultipartBody.Part file);

    /**
     * 添加常用联系人
     */

    @POST("jianyunzhushou.aspx")
    Observable<Object> addContacts(@Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                   @Query("employeeId") String userId,
                                   @Query("commonContactId") String commonContactId,
                                   @Query("appCode") String appCode,
                                   @Query("appType") String appType,
                                   @Query("appVersion") String appVersion);

    /**
     * 删除常用联系人
     */
    @POST("jianyunzhushou.aspx")
    Observable<Object> delContact(@Query("method") String method, @Query("enterpriseCode") String enterpriseCode,
                                  @Query("employeeId") String userId,
                                  @Query("recordId") String recordId,
                                  @Query("appCode") String appCode,
                                  @Query("appType") String appType,
                                  @Query("appVersion") String appVersion);


    /**
     * 阿里云 发票验证API
     */
    @GET("/invoice/query")
    @Headers("Authorization:APPCODE dfbf293974be47dc8e0d4197972af2d9")
    Observable<Object> questFpCode(@QueryMap Map<String, String> map);


    /**
     * 获取应用列表
     *
     * @param method
     * @param employeeid
     * @return
     */
    @POST("DataService/jianyunzhushou.aspx")
    Observable<Object> getOaIcon(@Query("method") String method,
                                 @Query("employeeid") String employeeid,
                                 @Query("enterpriseCode") String enterpriseCode,
                                 @Query("appCode") String appCode,
                                 @Query("appType") String appType,
                                 @Query("appVersion") String appVersion);

    /**
     * 获取当前人员流程待办总数
     *
     * @param method
     * @param userId
     * @return
     */
    @POST("DataService/SCSWorkFlow.aspx")
    Observable<Object> getFlowCount(@Query("method") String method, @Query("employeeid") String userId);

    /**
     * 获取顶部轮播图
     *
     * @param url
     * @return
     */
    @GET
    Observable<TopBrodCastBean> getTopBrodCasetImg(@Url String url);

    /**
     * 获取启动页广告
     *
     * @param url
     * @return
     */
    @GET
    Observable<ResponseBody> downloadPicFromNet(@Url String url);

    @POST("Phone/PhoneWorkFlowService.aspx")
    Observable<Object> getFlowSwtich(@Query("method") String method, @Query("UserID") String UserID, @Query("isEnable") String isEnable);

}

